/**
 * RequestUnmarshalling.java
 * ************************** 
 * @date Apr 19, 2011
 * @author Michele Tamburini
 * 
 * **************************
 */
package systems.network;

import infrastructureAPI.APIMessages.RequestMessage;
import infrastructureAPI.algorithms.APIFunction;

/**
 * Description: 
 * The classes implementing this interface are able to unmarshal 
 * a RequestMessage given in input.
 * Although each APIFunction may specify a different way
 * to marshal and unmarshal its own RequestMessage, 
 * it's still possible to generalize
 * a common behavior and put it in a unique object.
 *
 */
public interface RequestUnmarshalling {
	
	/**
	 * Returns the APIFunction contained in the input 
	 * RequestMessage. 
	 * @param reqMsg
	 * @return
	 */
	public APIFunction unmarshalRequestMessage(RequestMessage reqMsg);

}
